import time

#1.编写一个装饰器，用于记录函数的调用日志，包括调用函数名、时间和参数，调用结束后输出调用函数名和时间
def record_fn_log(fn):
    def inner(*args,**kwargs):
        print(f"args={args}")
        print(f"kwargs={kwargs}")
        start = time.time()
        res = fn(args,kwargs)
        print(f"函数运行时间{time.time()-start}")
        print(f"函数的名字是{fn.__name__}")
        return res
    return inner
#2.编写一个装饰器，用于缓存函数的结果，以便在相同参数调用时返回缓存的结果。
def cache_fn_result(fn):
    cache_dict= dict()
    def inner(arg):
        if arg in cache_dict.keys():
            return cache_dict[arg]
        else:
            res = fn(arg)
            cache_dict.get(arg,res)
            return res
    return inner